package com.wh.weibo.facade;

import com.wh.weibo.model.ServiceResult;
import com.wh.weibo.model.Topic;

import java.util.List;

/**
 * @author WeiHong
 * @date 2019/7/11 10:56
 */
public interface TopicService {

    /**
     * 创建话题
     * @param topic
     * @return
     */
    ServiceResult<Topic> create(Topic topic);

    /**
     * 若微博关联了对应的话题，则需要对应的话题讨论数量+1
     * @param id
     * @return
     */
    ServiceResult increaseDiscussCount(Integer id);

    /**
     * 通过ID获取话题
     * @param id
     * @return
     */
    ServiceResult<Topic> get(Integer id);

    /**
     * 更加话题标题获取话题
     * @param title
     * @return
     */
    ServiceResult<Topic> getByTitle(String title);

    ServiceResult<List<Topic>> selectList();

    /**
     * 用户关注
     * @param userId
     * @param topicId
     * @return
     */
    ServiceResult follow(Integer userId, Integer topicId);

    /**
     * 用户阅读
     * @param userId
     * @param topicId
     * @return
     */
    ServiceResult read(Integer userId, Integer topicId);

    /**
     * 异步化操作讨论数量
     */
    void syncTopicDiscussCount();
}
